home *** CD-ROM | disk | FTP | other *** search
/ MacPeople 1997 August 15 / MACPEOPLE-1997-08-15.ISO.7z / MACPEOPLE-1997-08-15.ISO / アップル関連 / Open Transport⁄PPP 1.0 / CCL Disk / Modem CCLs / I-O DATA PCML-288 / I-O DATA PCML-288 next >
Text File  |  1996-07-23  |  10KB  |  529 lines

  1. !************************************************************
  2. ! I-O DATA DATA/FAX MODEM PCML-288
  3. ! 06/20/96
  4. !
  5. ! Copyright (C) 1996 I-O DATA DEVICE,INC. All rights reserved.
  6. !
  7. !  'mlts' resource info for this modem:
  8. !    byte 1 == 01 -> modem HAS built-in error correction protocols
  9. !    byte 2 == 01 -> modem HAS built-in data compression protocols
  10. !    byte 3 == 35 -> max number of chars in varstr 7 (53dec)
  11. !    byte 4 == 35 -> max number of chars in varstr 8
  12. !    byte 5 == 35 -> max number of chars in varstr 9
  13. !    
  14. !************************************************************
  15. @ORIGINATE
  16. @ANSWER
  17. !
  18. ! ---- Initial modem setup ----
  19. !
  20. ! Set serial port speed depending upon the compression flag
  21. !    A higher rate with compression on to handle expanded data from the modem
  22. !    A lower rate closer to the DCE when compression is off
  23. ifstr 5 1 "0"
  24. serreset 57600, 0, 8, 1
  25. jump 2
  26. !
  27. @LABEL 1
  28. serreset 38400, 0, 8, 1
  29. @LABEL 2
  30. hsreset 0 0 0 0 0 0
  31. settries 0
  32. !
  33. ! Get the modem's attention
  34. !
  35. matchclr
  36. matchstr 1 3 "OK¥13¥10"
  37. write "AT¥13"
  38. matchread 30
  39. !
  40. @LABEL 3
  41. !
  42. ! Setup the modem for the following:
  43. !   Reset to factory settings
  44. !   Standard compression/reliablity
  45. !   Lock serial port speed
  46. !   Serial port hardware handshaking, turn off software handshaking
  47. !   Verbose responces and compresion/protocol results
  48. !   CONNECT returns DCE speed
  49. !   Turn off answering
  50. !   Reset or return to command mode on DTR toggle (optional)
  51. !
  52. matchclr
  53. matchstr 1 4 "OK¥13¥10"
  54. write "AT&FE0W2L1S7=50S0=0&P3¥13"
  55. matchread 30
  56. inctries
  57. iftries 3 101
  58. !
  59. ! Reset the Modem on setup failure
  60. !
  61. DTRClear
  62. pause 5
  63. DTRSet
  64. flush
  65. jump 3
  66. !
  67. !
  68. @LABEL 4
  69. ! Varstring 4 , reliable link protocol:
  70. !    = 0, handled by computer (ARAP)
  71. !    = 1, handled by modem (PPP)
  72. !    = 2, MNP10 protocol (Cellular protocol, no longer supported)
  73. ifstr 4 5 "1"
  74. ifstr 4 5 "2"
  75. !
  76. ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
  77. matchclr
  78. matchstr 1 9 "OK¥13¥10"
  79. write "AT&Q6¥13"
  80. matchread 30
  81. jump 101
  82. !
  83. !
  84. @LABEL 5
  85. ! Varstring 5, compression protocol:
  86. !    = 0, handled by computer 
  87. !    = 1, handled by modem
  88. ifstr 5 9 "1"
  89. !
  90. ! Varstring 5 == 0, turn off compression protocol in modem.
  91. matchclr
  92. matchstr 1 9 "OK¥13¥10"
  93. write "ATS46=136¥13"
  94. matchread 30
  95. jump 101
  96. !
  97. !
  98. @LABEL 9
  99. ! Varstring 2, modem speaker:
  100. !    = 0, speaker off
  101. !    = 1, speaker on
  102. ifstr 2 13 "1"
  103. pause 5
  104. matchclr
  105. matchstr 1 13 "OK¥13¥10"
  106. write "ATM0¥13"
  107. matchread 30
  108. jump 101
  109. !
  110. ! Modem ready, wait for a call or originate a call
  111. !
  112. @LABEL 13
  113. ifANSWER 32
  114. !
  115. !
  116. ! ---- Originating a call ----
  117. !
  118. ! Varstring 6, dialing mode:
  119. !    = 0, normal dialing
  120. !    = 1, blind dialing
  121. !    = 2, manual dialing
  122. ifstr 6 17 "1"
  123. ifstr 6 15 "2"
  124. jump 19
  125. !
  126. @LABEL 15
  127. note "Manual dialing initiated" 3
  128. ! Display ASK dialog with message.  Goto label 107 if dialog canceled.
  129. ASK 0 "Pick up the phone & dial ^1.  Hit OK when the phone rings, then hangup." 107
  130. ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
  131. write "ATX1D¥13"
  132. jump 32
  133. !
  134. @LABEL 17
  135. note "Dialing without tone" 3
  136. matchclr
  137. matchstr 1 19 "OK¥13¥10"
  138. ! X1 to ignore dialtone & busy
  139. write "ATX1¥13"
  140. matchread 30
  141. jump 101
  142. !
  143. !
  144. @LABEL 19
  145. ! Display the full dialstring contained in Varstring 1
  146. note "Dialing ^1" 3
  147. !
  148. ! Varstrings 7, 8 and 9, contain dialstring fragments
  149. !    Long phone numbers may need to be split into smaller groups
  150. !    for the modem to use
  151. !
  152. ! Varstring 3:  "p" for pulse & "t" for tone dialing
  153. ! Varstring 8 == blank (dialstring in varstring 7)
  154. ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
  155. ! Otherwise (dialstring in varstrings 7, 8 & 9)
  156. ! ¥^ is added to the dialstring to force the modem to generate a data tone
  157. ifstr 8 27 " "
  158. ifstr 9 24 " "
  159. !
  160. !  Write dialstring in varstrings 7, 8 & 9
  161. matchclr
  162. matchstr 1 21 "OK¥13¥10"
  163. write "ATD^3^7;¥13"
  164. matchread 400
  165. jump 101
  166.  
  167. @LABEL 21
  168. matchclr
  169. matchstr 1 22 "OK¥13¥10"
  170. write "ATD^3^8;¥13"
  171. matchread 400
  172. jump 101
  173.  
  174. @LABEL 22
  175. write "ATD^3^9¥13"
  176. jump 32
  177. !
  178. !
  179. @LABEL 24
  180. !  Write dialstring in varstrings 7 & 8
  181. matchclr
  182. matchstr 1 25 "OK¥13¥10"
  183. write "ATD^3^7;¥13"
  184. matchread 400
  185. jump 101
  186.  
  187. @LABEL 25
  188. write "ATD^3^8¥13"
  189. jump 32
  190. !
  191. @LABEL 27
  192. !  Write dialstring in varstring 7
  193. write "ATD^3^7¥13"
  194. !
  195. !
  196. !    ---- Connection responce ----
  197. !
  198. ! The following section will parse modem responces of two types:
  199. !   1) PROTOCOL: xxx, COMPRESSION: xxx, CONNECT xxx
  200. !   2) CONNECT xxx/ARQ/V42
  201. !
  202. @LABEL 32
  203. matchclr
  204. matchstr  1 81  "RING¥13¥10"
  205. matchstr  2 102 "NO DIALTONE¥13¥10"
  206. matchstr  3 103 "NO CARRIER"
  207. matchstr  4 103 "ERROR¥13¥10"
  208. matchstr  5 104 "BUSY¥13¥10"
  209. matchstr  6 105 "NO ANSWER¥13¥10"
  210. matchstr  7 33  "CONNECT "
  211. matchstr  8 32  "CARRIER"
  212. matchstr  9 40  "CONNECT¥13¥10"
  213. matchstr 10 62  "PROTOCOL: LAP"
  214. matchstr 11 62  "PROTOCOL: MNP"
  215. matchstr 12 62  "PROTOCOL: ALT"
  216. matchstr 13 67  "COMPRESSION: V"
  217. matchstr 14 67  "COMPRESSION: MNP5"
  218. matchstr 15 67  "COMPRESSION: CLASS"
  219. matchstr 16 62  "PROTOCOL: NONE"
  220. matchstr 17 62  "PROTOCOL: LAP-M"
  221. matchstr 18 62  "PROTOCOL: ALT-CELLULAR"
  222. matchstr 19 67  "COMPRESSION: V.42bis"
  223. matchstr 20 67  "COMPRESSION: NONE"
  224. matchstr 21 67  "COMPRESSION: CLASS5"
  225. matchstr 22 108 "DELAYED"
  226. matchstr 23 109 "HAND SET IN USE"
  227. matchread 700
  228. ifANSWER 32
  229. jump 101
  230. !
  231. !  Parse the speed of connect result codes
  232. !  2400 and 4800 have two entries each
  233. !  to distinguish them from 24000 and 48000
  234. !
  235. @LABEL 33
  236. matchclr
  237. matchstr  1 40 "2400¥13"
  238. matchstr  2 40 "2400/"
  239. matchstr  3 41 "4800¥13"
  240. matchstr  4 41 "4800/"
  241. matchstr  5 42 "7200"
  242. matchstr  6 43 "9600"
  243. matchstr  7 44 "12000"
  244. matchstr  8 45 "14400"
  245. matchstr  9 46 "16800"
  246. matchstr 10 47 "19200"
  247. matchstr 11 48 "21600"
  248. matchstr 12 49 "24000"
  249. matchstr 13 50 "26400"
  250. matchstr 14 51 "28800"
  251. matchstr 15 52 "31200"
  252. matchstr 16 53 "33600"
  253. matchstr 17 54 "38400"
  254. matchstr 18 55 "48000"
  255. matchstr 19 56 "56000"
  256. matchstr 20 57 "57600"
  257. matchstr 21 58 "64000"
  258. matchread 30
  259. jump 59
  260. !
  261. ! -- Connection rates --
  262. ! CommunicatingAt informs ARA of the raw modem to modem
  263. ! connection speed.
  264. !
  265. @LABEL 40
  266. note "Communicating at 2400 bps." 2
  267. CommunicatingAt 2400
  268. jump 60
  269. !
  270. @LABEL 41
  271. note "Communicating at 4800 bps." 2
  272. CommunicatingAt 4800
  273. jump 60
  274. !
  275. @LABEL 42
  276. note "Communicating at 7200 bps." 2
  277. CommunicatingAt 7200
  278. jump 60
  279. !
  280. @LABEL 43
  281. note "Communicating at 9600 bps." 2
  282. CommunicatingAt 9600
  283. jump 60
  284. !
  285. @LABEL 44
  286. note "Communicating at 12400 bps." 2
  287. CommunicatingAt 12400
  288. jump 60
  289. !
  290. @LABEL 45
  291. note "Communicating at 14400 bps." 2
  292. CommunicatingAt 14400
  293. jump 60
  294. !
  295. @LABEL 46
  296. note "Communicating at 16800 bps." 2
  297. CommunicatingAt 16800
  298. jump 60
  299. !
  300. @LABEL 47
  301. note "Communicating at 19200 bps." 2
  302. CommunicatingAt 19200
  303. jump 60
  304. !
  305. @LABEL 48
  306. note "Communicating at 21600 bps." 2
  307. CommunicatingAt 21600
  308. jump 60
  309. !
  310. @LABEL 49
  311. note "Communicating at 24000 bps." 2
  312. CommunicatingAt 24000
  313. jump 60
  314. !
  315. @LABEL 50
  316. note "Communicating at 26400 bps." 2
  317. CommunicatingAt 26400
  318. jump 60
  319. !
  320. @LABEL 51
  321. note "Communicating at 28800 bps." 2
  322. CommunicatingAt 28800
  323. jump 60
  324. !
  325. @LABEL 52
  326. note "Communicating at 31200 bps." 2
  327. CommunicatingAt 31200
  328. jump 60
  329. !
  330. @LABEL 53
  331. note "Communicating at 33600 bps." 2
  332. CommunicatingAt 33600
  333. jump 60
  334. !
  335. @LABEL 54
  336. note "Communicating at 38400 bps." 2
  337. CommunicatingAt 38400
  338. jump 60
  339. !
  340. @LABEL 55
  341. note "Communicating at 48000 bps." 2
  342. CommunicatingAt 48000
  343. jump 60
  344. !
  345. @LABEL 56
  346. note "Communicating at 56000 bps." 2
  347. CommunicatingAt 56000
  348. jump 60
  349. !
  350. @LABEL 57
  351. note "Communicating at 57600 bps." 2
  352. CommunicatingAt 57600
  353. jump 60
  354. !
  355. @LABEL 58
  356. note "Communicating at 64000 bps." 2
  357. CommunicatingAt 64000
  358. jump 60
  359. !
  360. @LABEL 59
  361. note "Communicating at an unknown rate." 2
  362. jump 60
  363. !
  364. ! Look for reliablilty and compression results 
  365. ! at the end of the connect result.
  366. !
  367. @LABEL 60
  368. matchclr
  369. matchstr  1 63 "LAPM"
  370. matchstr  2 63 "REL"
  371. matchstr  3 63 "ARQ"
  372. matchstr  4 68 "COMP/"
  373. matchstr  5 68 "COMP¥13"
  374. matchstr  6 63 "V42/"
  375. matchstr  7 63 "V42¥13"
  376. matchstr  8 68 "V42BIS"
  377. matchstr  9 68 "V42bis"
  378. matchstr 10 63 "MNP¥13"
  379. matchstr 11 68 "MNP5"
  380. matchstr 12 70 "¥10"
  381. matchstr 13 68 "V.42bis"
  382. matchread 30
  383. jump 70
  384.  
  385. ! -- Modem error correction link negotiation --
  386. ! Userhook 2 informs ARA that a modem-to-modem error
  387. ! correcting protocol has been negotiated
  388. !
  389. !
  390. @LABEL 62
  391. note "Modem Reliable Link Established." 2
  392. userhook 2
  393. jump 32
  394. !
  395. @LABEL 63
  396. note "Modem Reliable Link Established." 2
  397. userhook 2
  398. jump 60
  399. !
  400. ! -- Compression negotiation --
  401. ! Userhook 3 informs ARA that a modem-to-modem compression
  402. ! protocol has been negotiated
  403. !
  404. @LABEL 67
  405. note "Modem Compression Established." 2
  406. userhook 3
  407. jump 32
  408. !
  409. @LABEL 68
  410. note "Modem Compression Established." 2
  411. userhook 3
  412. jump 60
  413. !
  414. !
  415. ! -- Normal exit after "CONNECT" --
  416. !
  417. !  This modem has been setup to do CTS handshaking,
  418. !  and we assume that a CTS handshaking cable is being used.
  419. !
  420. @LABEL 70
  421. ! Turn on CTS handshaking.
  422. HSReset 0 1 0 0 0 0
  423. !
  424. ifANSWER 71
  425. pause 30
  426. @LABEL 71
  427. exit 0
  428. !
  429. !
  430. ! ---- Answer calls ----
  431. !
  432. !    A RING result from the modem and in ANSWERING mode
  433. !    claims the serial port and answering the phone
  434. !
  435. @LABEL 81
  436. ifORIGINATE 32
  437. userhook 1
  438. note "Answering phone..." 2
  439. write "ATA¥13"
  440. jump 32
  441. !
  442. !
  443. ! ---- Hang up and reset modem ----
  444. !
  445. @HANGUP
  446. @LABEL 90
  447. settries 0
  448. HSReset 0 0 0 0 0 0
  449. !
  450. @LABEL 92
  451. !  Escape from data to command mode
  452. matchclr
  453. matchstr 1 96 "OK¥13¥10"
  454. write "+++"
  455. matchread 20
  456. !
  457. @LABEL 94
  458. ! Force a hangup
  459. matchclr
  460. matchstr 1 98 "NO CARRIER¥13¥10"
  461. matchstr 2 98 "OK¥13¥10"
  462. matchstr 3 98 "ERROR¥13¥10"
  463. matchstr 4 98 "0¥13¥10"
  464. write "ATH¥13"
  465. matchread 30
  466. ! Try to get control of the modem by toggling DTR
  467. DTRClear
  468. pause 5
  469. DTRSet
  470. flush
  471. !
  472. ! Try the hangup sequence three times otherwise declare and error
  473. inctries
  474. iftries 3 101
  475. jump 92
  476. !
  477. @LABEL 96
  478. ! Pause between data and command mode
  479. pause 50
  480. jump 94
  481. !
  482. !
  483. @LABEL 98
  484. ! Recall the factory settings
  485. pause 15
  486. matchclr
  487. matchstr 1 99 "OK¥13¥10"
  488. write "AT&F¥13"
  489. matchread 30
  490. jump 101
  491. !
  492. @LABEL 99
  493. exit 0
  494. !
  495. ! ---- Error messages -----
  496. !
  497. ! Modem Not Responding
  498. @LABEL 101
  499. exit -6019
  500. !
  501. ! No Dial Tone
  502. @LABEL 102
  503. exit -6020
  504. !
  505. ! No Carrier or Error
  506. @LABEL 103
  507. exit -6021
  508. !
  509. ! Busy
  510. @LABEL 104
  511. exit -6022
  512. !
  513. ! No Answer
  514. @LABEL 105
  515. exit -6023
  516. !
  517. ! User Cancellation
  518. @LABEL 107
  519. exit -6002 "User cancelled the connection attempt."
  520. !
  521. ! DELAYED
  522. @LABEL 108
  523. exit -6022
  524. !
  525. ! HAND SET IN USE
  526. @LABEL 109
  527. exit -6002 "HAND SET IN USE."